package adm.hikingapp;

import java.lang.ref.WeakReference;

import org.json.JSONArray;

import adm.controlador.Controller;
import android.content.Context;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
import android.os.AsyncTask;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;

public class Registro extends ClaseBase{
	Button Guardar;
	Button Cancelar;
	InsertSQL auxiliar = new InsertSQL(this);

	/**
	 * Funcion que guarda en el fichero de preferencias los datos de nombre, apellidos y nick
	 */
	private void saveData(){
		SharedPreferences preferences = getSharedPreferences("preferencias",Context.MODE_PRIVATE);
		EditText nombre = (EditText) findViewById(R.id.editText_nombre);
		EditText apellidos = (EditText) findViewById(R.id.editText_apellido);
		EditText user = (EditText) findViewById(R.id.editText_user);
		EditText pass = (EditText) findViewById(R.id.editText_pass);
		Editor editor = preferences.edit();
		editor.putString("nombre", nombre.getText().toString());
		editor.putString("apellidos", apellidos.getText().toString());
		editor.putString("user", user.getText().toString());
		editor.putString("pass", pass.getText().toString());
		editor.commit();
	}

	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.layout_guardar_datos);
		Log.d("debug","Entro en registro");


		
		Guardar=(Button)findViewById(R.id.button_guardar);
		Guardar.setOnClickListener(new OnClickListener(){
			public void onClick(View v){
				Integer error=0;
				boolean falta = false;
				EditText nombre = (EditText) findViewById(R.id.editText_nombre);
				EditText apellidos = (EditText) findViewById(R.id.editText_apellido);
				EditText user = (EditText) findViewById(R.id.editText_user);
				EditText pass = (EditText) findViewById(R.id.editText_pass);
				String consulta="INSERT INTO Usuario (User,Nombre,Apellido,Pass) VALUES ('"+user.getText()+"','"+nombre.getText()+"','"+apellidos.getText()+"','"+pass.getText()+"')";
				Log.d("Debug_Registro",consulta);
				
				if(nombre.length() == 0){
					Log.d("debug","No hay info en nombre");
					nombre.setText("Falta");
					falta = true;
				}
				if(apellidos.length() == 0){
					Log.d("debug","No hay info en nombre");
					apellidos.setText("Falta");
					falta = true;
				}
				if(user.length() == 0){
					Log.d("debug","No hay info en nombre");
					user.setText("Falta");
					falta = true;
				}
				if(pass.length() == 0){
					Log.d("debug","No hay info en nombre");
					pass.setText("Falta");
					falta = true;
				}
				if(!falta){
				try{
					error=auxiliar.execute(consulta).get();
				}catch(Exception e){
					Log.d("debug","Falla al insertar en la base de datos");
				}
				if(error==0){
					Log.d("debug","Error al guardar los datos en la BBDD");
					finish();
				}
				else{
					if(error==1){
						saveData();
					}
					finish();
				}
				}
			}
		});

		Cancelar=(Button)findViewById(R.id.button_cancelar);
		Cancelar.setOnClickListener(new OnClickListener(){
			public void onClick(View v){
				finish();
			}
		});
	}

	static class InsertSQL extends AsyncTask<String, Integer, Integer> {
		Button boton;
		boolean aux;
		WeakReference<Registro> context;
		Controller controlador=new Controller();

		public InsertSQL(Registro activity) {
			context = new WeakReference<Registro>(activity);
		}
		
		@Override
		protected Integer doInBackground(String... params) {
			try{
				aux = controlador.InsertaBD(params[0]);
				publishProgress(1);
				return 1;
			}
			catch (Exception e){
				return 0;
			}

		}
		@Override
		protected void onPostExecute(Integer result){
			Registro activity = context.get();
		}


	}

}

